package javaeSE.enums;

// 枚举类基础
public class Meiju {
    public static void main(String[] args) {
        Color c1 = Color.PINK;
        //Color c2 = Color.PURPLE;
        System.out.println(c1);
        //System.out.println(c2);
        c1.ColorInfo();
        // 调枚举类的values 返回值的数组
        Color[] arr = Color.values();
        // 迭代枚举
        for (Color col : arr) {
            // 查看索引 ordinal()
            System.out.println(col + " at index " + col.ordinal());
            System.out.println(col.getColor());
        }

        for (Color Color :arr) {
            System.out.println(Color);
            switch (Color){
                case RED:
                    System.out.println("红色");
                    break;
                case PINK:
                    System.out.println("粉色");
                    break;
                case PURPLE:
                    System.out.println("紫色");
                   break;
            }
        }
    }
}
enum Color {
    /*RED,
    GREEN,
    BLUE;*/
    // 具体返回什么 既可以在这类里面就处理好，也可以在外面处理
    RED{
        public String getColor(){//枚举对象实现抽象方法
            return "红色";
        }
    },
    PINK{
        public String getColor(){//枚举对象实现抽象方法
            return "粉色";
        }
    },
    PURPLE{
        public String getColor(){//枚举对象实现抽象方法
            return "紫色";
        }
    };

    // 构造函数
    private Color()
    {
        System.out.println("构造器 : " + this.toString());
    }

    public void ColorInfo()
    {
        System.out.println("颜色信息");
    }

    public abstract String getColor();//枚举类的定义抽象方法
}